iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
Modern Web

給前端新手的圖文故事系列 第 29

使用 Redux 搭配 TypeScript 作為資料流載體

  • 分享至 

  • xImage
  •  

什麼是 Redux

Redux 是一個 JavaScript 管理狀態的函式庫,通常用於管理較大型與複雜的應用程式的狀態,他最初是為了 React 所設計的,所以有些核心思想會與 React 有所關聯,不過在後來的演進中,他也完全獨立成了一個可以獨立運作的函式庫,並提供多種框架使用的方式。

Redux 提供了一種可預測與維護的方式來處理應用程式的狀態與資料,並使狀態的便會變得容易且可追蹤,並且他遵循著單向資料流的流程,因此我們也可以用開發者工具看到明確的資料異動。

以下是 Redux 所提供的資料流,這是最基本的方式,我們之後我在他身上擴增更多的功能

以下是 Redux 的一些關鍵概念和特點:

  1. 單一數據源:Redux 遵循單一數據源的原則,即整個應用程式的狀態被存儲在一個稱為 "store" 的地方。這使得應用程式的狀態易於管理和查詢。

  2. 不可變性:Redux 鼓勵不可變性,這意味著一旦狀態被創建,它不能被直接修改。相反,每次進行狀態更改時都要創建一個新的狀態對象。這有助於減少狀態變化的複雜性和副作用。

  3. 純函數減少副作用:Redux 中的 reducer 函數是純函數,它們接受先前的狀態和一個操作,然後返回新的狀態。這使得狀態變化可預測,並有助於減少副作用。

  4. 動作 (Actions):Redux 使用 "actions" 來描述狀態的變化。每個 action 是一個包含 type 和可選的 payload 的對象,它描述了應用程式中的某種事件。例如,一個 action 可能是 "增加數量",並且具有一個 type 和一個 payload(新的數量值)。

  5. Reducer:Reducer 是純函數,它們根據當前狀態和 action 來計算新的狀態。Redux 中的 reducer 負責處理特定的 action 類型,並根據需要更新狀態。

  6. Store:Store 是應用程式的中心數據存儲庫,它包含整個應用程式的狀態。開發者可以通過 store 中提供的方法來訪問和修改狀態。

  7. 中間件 (Middleware):Redux 支援中間件,這些中間件可以用於處理非同步操作、日誌記錄、路由控制和其他高級功能。Redux 社群提供了各種中間件,也可以自定義中間件以滿足特定需求。

  8. 時間旅行調試:Redux 的狀態變化可以被記錄和回放,使開發者能夠輕鬆跟蹤應用程式狀態的變化,這對調試和錯誤排除非常有用。


上一篇
了解 Next.js 路由與相關應用
下一篇
前端系列總結
系列文
給前端新手的圖文故事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言